/**
 * @author 陈泰来
 * @version V1.0
 * @Project echo-java-base
 * @Title 抽象披萨仓库
 * @Description *
 * @Package designmodel.factorymodel2.ex2.factory
 * @date 2021/3/9 11:10 上午
 * @Copyright:学如逆水行舟，不进则退 .
 */
package designmodel.factorymodel2.ex2.factory;

import designmodel.factorymodel2.ex2.model.Pizza;

public abstract class PizzaStore {

    /**
     * @return void
     * @author chentl
     * @description 顾客点披萨
     * 不需要关注披萨到底是如何创建的，只需固定好披萨流程，使用抽象类接收最终做好的披萨对象
     * @date 2021/3/9 11:12 上午
     * @params [type]
     */
    public Pizza orderPizza(String type) {

        Pizza pizza = createPizza(type);


        //固定流程
        pizza.bake();
        pizza.cut();
        pizza.box();


        return pizza;
    }


    /**
     * 工厂方法
     */
    abstract Pizza createPizza(String type);


}
